//
// Created by sjjmw on 3/24/2022.
//
#include "iostream"
#include "vector"
#include "list"
#include "algorithm"
#include "string"
#include "unordered_map"
//#include "map"

void handle(std::string&str1,std::string&str2
            ){
    std::vector<int> cnt1(26);
    std::vector<int> cnt2(26);
    for(auto c:str1){
        if(c>='A'&&c<='Z'){
            cnt1[c-'A']++;
        }
        else{
            cnt1[c-'a']++;
        }
    }
    for(auto c:str2){
        if(c>='A'&&c<='Z'){
            cnt2[c-'A']++;
        }
        else{
            cnt2[c-'a']++;
        }
    }
    bool same= true;
    for(int i=0;i<26;i++){
        if(cnt1[i]!=cnt2[i]){
            same=false;
            break;
        }
    }
    if(same){
        printf("Y\n");
    }else{
        printf("N\n");
    }
}

int main(){
    int a,b,c;
    std::string str1,str2;
    while(
            std::getline(std::cin,str1)
//            std::cin>>a
    ){
        std::getline(std::cin,str2);
        handle(str1,str2);
    }
    return 0;
}